package data_structures;

/**
 * Represents a hyper-parameter. A hyper-parameter is defined by three items:
 * lower-bound, upper-bound, and its value.
 * 
 */
public interface HyperParameter {
	/**
	 * A neighbor is in the sense of a successor in search algorithms. It will
	 * be useful for local search.
	 * 
	 * @return a random neighbor of the hyper-parameter
	 */
	public HyperParameter getRandomNeighbor();

	/**
	 * @return the lower-bound of the hyper-parameter
	 */
	public double getLowerBound();

	/**
	 * @return the upper-bound of the hyper-parameter
	 */
	public double getUpperBound();

	/**
	 * @return the value of the hyper-parameter
	 */
	public double getValue();
}
